package 时间类.JDK8新增.Date类.Instant时间戳;

import java.time.Instant;
import java.time.ZoneId;
import java.time.ZonedDateTime;

public class 学习 {
    public static void main(String[] args) {
        /*
            static Instant now() 获取当前时间的Instant对象(标准时间)
            static Instant ofXxxx(long epochMilli) 根据(秒/毫秒/纳秒)获取Instant对象
            ZonedDateTime学习 atZone(ZoneIdzone) 指定时区
            boolean isxxx(Instant otherInstant) 判断系列的方法
            Instant minusXxx(long millisToSubtract) 减少时间系列的方法
            Instant plusXxx(long millisToSubtract) 增加时间系列的方法
        */
        //1.获取当前时间的Instant对象(标准时间)
        Instant now=Instant.now();
        System.out.println(now);  //2023-04-18T07:10:08.268074900Z

        //2.根据(秒/毫秒/纳秒)获取Instant对象
        Instant instant1=Instant.ofEpochMilli(0L);//EpochMilli毫秒
        System.out.println(instant1);//1970-01-01T00:00:00Z

        Instant instant2=Instant.ofEpochSecond(1L);//秒
        System.out.println(instant2);//1970-01-01T00:00:01Z

        Instant instant3 = Instant.ofEpochSecond(1L, 10000000000L);//第二个参数是纳秒
        System.out.println(instant3);    //1970-01-01T00:00:11Z

        //3.指定时区---->ZonedDateTime学习 atZone
        ZonedDateTime time = Instant.now().atZone(ZoneId.of("Asia/Shanghai"));
        System.out.println(time);//2023-04-18T15:18:04.430362800+08:00[Asia/Shanghai]

        //4.is xxxx 判断
        //isBefore :调用则调用的时间是否在前面
        Instant instant4=Instant.ofEpochMilli(0L);
        Instant instant5=Instant.ofEpochMilli(10000L);

        boolean result=instant4.isBefore(instant5);
        System.out.println(result);//true

        //5.minusXxx --->减少时间系列的方法
        Instant instant6 = Instant.ofEpochMilli(10000L);
        System.out.println(instant6);//1970-01-01T00:00:10Z
        Instant instant7= instant6.minusSeconds(1);
        System.out.println(instant7);//1970-01-01T00:00:09Z
    }
}
